﻿using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.IO;
using System.Linq;
using System.Text;

namespace RuTracker.Interface
{
    public interface IWebClient
    {
        byte[] DownloadData(string address);
        byte[] DownloadData(Uri address);
        void DownloadFile(string address, string fileName);
        void DownloadFile(Uri address, string fileName);
        Stream OpenRead(string address);
        Stream OpenRead(Uri address);
        Stream OpenWrite(string address);
        Stream OpenWrite(Uri address);
        Stream OpenWrite(string address, string method);
        Stream OpenWrite(Uri address, string method);
        byte[] UploadData(string address, byte[] data);
        byte[] UploadData(Uri address, byte[] data);
        byte[] UploadData(string address, string method, byte[] data);
        byte[] UploadData(Uri address, string method, byte[] data);
        byte[] UploadFile(string address, string fileName);
        byte[] UploadFile(Uri address, string fileName);
        byte[] UploadFile(string address, string method, string fileName);
        byte[] UploadFile(Uri address, string method, string fileName);
        string UploadValues(string address, NameValueCollection data);
        byte[] UploadBinaryValues(string address, NameValueCollection data);
        byte[] UploadValues(Uri address, NameValueCollection data);
        byte[] UploadValues(string address, string method, NameValueCollection data);
        byte[] UploadValues(Uri address, string method, NameValueCollection data);
        string UploadString(string address, string data);
        string UploadString(Uri address, string data);
        string UploadString(string address, string method, string data);
        string UploadString(Uri address, string method, string data);
        string DownloadString(string address);
        string DownloadString(Uri address);
    }
}
